package com.sunyur.tailor.channel.service.inner.protocol.service;

import com.sunyur.tailor.channel.common.middle.base.ChannelListResult;
import com.sunyur.tailor.channel.common.middle.base.ChannelResult;
import com.sunyur.tailor.channel.service.inner.protocol.model.*;
import com.sunyur.tailor.channel.service.inner.protocol.param.*;

import java.util.List;

/**
 * @ClassName SunyurProtocolService
 * @Description 协议接口
 * @Author hao.tian
 * @Date 2021/5/11
 * @Version v1.0
 */
public interface SunyurProtocolService {
    /**
     * @Description 04-协议信息创建接口【已上线】
     * @Version http://doc.sunyur.com/pages/viewpage.action?pageId=61309097
     */
    ChannelResult createProtocol(CreateProtocolParam createProtocolParam) throws Exception;
    /**
     * @Description 修改协议接口
     * @Param updateProtocolParam
     * @Return com.sunyur.tailor.channel.common.middle.base.ChannelResult<com.sunyur.tailor.channel.service.inner.protocol.model.UpdateProtocolModel>
     * @Author hao.tian
     * @Date 2021/5/11
     * @Version v1.0
     */
    ChannelResult updateProtocol(List<UpdateProtocolParam> updateProtocolParam) throws Exception;
    /**
     * @Description 获取协议行信息接口
     * @Param listProtocolItemParam
     * @Return com.sunyur.tailor.channel.common.middle.base.ChannelResult<com.sunyur.tailor.channel.service.inner.protocol.model.ListProtocolItemModel>
     * @Author hao.tian
     * @Date 2021/5/11
     * @Version v1.0
     */
    ChannelListResult<ListProtocolItemModel> listProtocolItem(ListProtocolItemParam listProtocolItemParam) throws Exception;
    /**
     * @Description 获取协议头信息接口
     * @Param listProtocolParam
     * @Return com.sunyur.tailor.channel.common.middle.base.ChannelResult<com.sunyur.tailor.channel.service.inner.protocol.model.ListProtocolModel>
     * @Author hao.tian
     * @Date 2021/5/11
     * @Version v1.0
     */
    ChannelResult<List<ListProtocolModel>> listProtocol(List<ListProtocolParam> listProtocolParam) throws Exception;
    /**
     * @Description 获取协议运费信息接口
     * @Param getProtocolFreightParam
     * @Return com.sunyur.tailor.channel.common.middle.base.ChannelResult<com.sunyur.tailor.channel.service.inner.protocol.model.GetProtocolFreightModel>
     * @Author hao.tian
     * @Date 2021/5/11
     * @Version v1.0
     */
    ChannelResult<GetProtocolFreightModel> getProtocolFreight(GetProtocolFreightParam getProtocolFreightParam) throws Exception;
    /**
     * @Description 接收协议审批结果接口
     * @Param updateProtocolApprovalParam
     * @Return com.sunyur.tailor.channel.common.middle.base.ChannelResult<com.sunyur.tailor.channel.service.inner.protocol.model.UpdateProtocolApprovalModel>
     * @Author hao.tian
     * @Date 2021/5/11
     * @Version v1.0
     */
    ChannelResult updateProtocolApproval(UpdateProtocolApprovalParam updateProtocolApprovalParam) throws Exception;
    /**
     * @Description 批量获取协议头信息接口通过协议编码获取
     * @Param listProtocolByCodeParam
     * @Return com.sunyur.tailor.channel.common.middle.base.ChannelResult<com.sunyur.tailor.channel.service.inner.protocol.model.ListProtocolByCodeModel>
     * @Author hao.tian
     * @Date 2021/5/11
     * @Version v1.0
     */
    ChannelResult<List<ListProtocolByCodeModel>> listProtocolByCode(ListProtocolByCodeParam listProtocolByCodeParam) throws Exception;

}

